Computer systems typically include various platform devices (e.g., disk drive) that operate under the control of a central processing unit (CPU). During operation of the computer system, interrupts are generated by these platform devices and transmitted to the CPU in order to communicate with the CPU.
Over the last few years, there have been many advances in computer system technology. These advances have lead to the development of computer systems having multiple processors to support additional and/or enhanced computing features. FIG. 1 illustrates, for example, one type of computer system that uses a co-processor in conjunction with a host CPU to perform complex mathematical operations. In such systems, the processors are under the control of a single operating system (OS). The use of single operating system, however, may limit the flexibility of the computer system.
Other advances in computer system technology have led to the development of battery-powered portable computers (e.g., laptop or notebook style computers, hand-held computers, etc.) that are implemented with high-speed processors similar to those implemented in desktop computers. Some of these portable computers may also include multiple processors. In order to conserve power in these systems, one or more of the processors may be placed in a low power mode, referred to as a “sleep mode” or “Limited ON” mode, when not in active use.
One problem with such a system is that the co-processor is not independent of the host CPU and, thus, cannot operate when the system is asleep. Therefore, the co-processor in the computer system will not be able to access system resources when the host processor is shut-down. In addition, when an interrupt is transmitted by a platform device, the interrupt is received by all the processors in the system including those that are not currently running or intentionally sitting idle. Such a configuration may lead to inefficiencies in the computer system. For example, a system operating with host CPU turned off may respond by waking up the host CPU upon receipt of an interrupt and, thereby, undesirably increase the power consumption of the system.